package com.eastfair.venueservice.dto;

import com.eastfair.core.base.entity.SuperEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 实体类
 * 价目表
 * </p>
 *
 * @author linan
 * @since 2022-07-21
 */
@Data
@ApiModel(value = "ServicePriceListUpdateDTO", description = "价目表")
public class ServicePriceListDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键")
    @NotNull(message = "请填写主键", groups = {Primary.class,AddItem.class,Update.class})
    private Long id;
    /**
     * 价目编号
     */
    @ApiModelProperty(value = "价目编号")
    @Size(max = 255, message = "价目编号长度不能超过255")
    private String priceListNo;
    /**
     * 价目名称
     */
    @ApiModelProperty(value = "价目名称")
    @Size(max = 20, message = "价目名称长度不能超过20",groups = {Save.class,Update.class})
    @NotBlank(message = "价目名称长度不能为空",groups = {Save.class,Update.class})
    private String priceListName;
    /**
     * 服务数量
     */
    @ApiModelProperty(value = "服务数量")
    private Integer serviceNum;
    /**
     * 展会使用数量
     */
    @ApiModelProperty(value = "展会使用数量")
    private Integer exhibitionNum;

    /**
     * 价目下服务
     */
    @ApiModelProperty(value = "价目下服务")
    @NotEmpty(message = "价目下服务不能为空",groups = {AddItem.class})
    private List<ServicePriceListItemDTO> servicePriceListItems;


    /**
     * 是否对主场开放：1是；0否
     */
    @ApiModelProperty(value = "是否对主场开放：1是；0否")
    private Integer isForHome;
    /**
     * 是否对主运开放：1是；0否
     */
    @ApiModelProperty(value = "是否对主运开放：1是；0否")
    private Integer isForTransport;
    /**
     * 是否对主办开放：1是；0否
     */
    @ApiModelProperty(value = "是否对主办开放：1是；0否")
    private Integer isForSponsor;

    public interface Save {
    }
    public interface Update {
    }
    public interface AddItem {
    }
    public interface Primary {
    }
}
